home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 May: Tool Chest / Dev.CD May 98 TC.toast / Tool Chest / QuickDraw / Bitblitz 1.0 / LibHeaders / MainUtils.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-05-14  |  5.0 KB  |  160 lines  |  [TEXT/MPS ]

  1. #ifndef __MAINUTILS__
  2. #define __MAINUTILS__
  3.  
  4. #ifndef __AUTOCURSOR__
  5. #include "AutoCursor.h"
  6. #endif
  7.  
  8. /*---------------------------------------------------------------------------------------
  9. //    File:        MainUtils.h    
  10. //    Date:        August 7, 1989
  11. //    
  12. //    Mods:        8/7/89 thru 5/11/90        JMP        Various mods.
  13. //                May 12, 1990            JMP        Added EqualStruct() prototype.
  14. //
  15. //    By Mike Puckett, Macintosh CPU Software Quality, x4-1332.
  16. //    © 1989 - 1990, Apple Computer, Inc.
  17. //---------------------------------------------------------------------------------------
  18. */
  19.  
  20. /* Useful Definitions -------------------------------------------------------------------
  21. */
  22. #define arrowCursor    (short)(-1)        /* Used by UseCursor() to select the arrow.    */
  23.  
  24.  
  25. /*    KeysDown() returns true if the the keys described in theMask are in the
  26. //    place in the keymap pointed to by thePtr.  Several common ptrs and masks
  27. //    are defined below.
  28. */
  29. #define C_S_O_MASK        ((unsigned short)0x8005)        /*    cmd-shift-option    */
  30. #define C_S_O_PTR        (short)3
  31. #define C_S_O            C_S_O_MASK,C_S_O_PTR
  32.  
  33. #define S_O_MASK        ((unsigned short)0x0005)        /*    shift-option        */
  34. #define S_O_PTR            (short)3
  35. #define S_O                S_O_MASK,S_O_PTR
  36.  
  37. #define C_O_MASK        ((unsigned short)0x8004)        /*    cmd-option            */
  38. #define C_O_PTR            (short)3
  39. #define C_O                C_O_MASK,C_O_PTR
  40.  
  41. #define CMDKEY_MASK        ((unsigned short)0x8000)        /*    cmd                    */
  42. #define CMDKEY_PTR        (short)3
  43. #define CMDKEY            CMDKEY_MASK,CMDKEY_PTR
  44.  
  45. #define OPKEY_MASK        ((unsigned short)0x0004)        /*    option                */
  46. #define OPKEY_PTR        (short)3
  47. #define OPKEY            OPKEY_MASK,OPKEY_PTR
  48.  
  49. #define SHIFT_MASK        ((unsigned short)0x0001)        /*    shift                */
  50. #define SHIFT_PTR        (short)3
  51. #define SHIFT            SHIFT_MASK,SHIFT_PTR
  52.  
  53. #define CNTRL_MASK        ((unsigned short)0x0008)        /*    control                */
  54. #define CNTRL_PTR        (short)3
  55. #define CNTRL_KEY        CNTRL_MASK,CNTRL_PTR
  56.  
  57. #define PERIOD_MASK        ((unsigned short)0x0080)        /*    period                */
  58. #define PERIOD_PTR        (short)2
  59. #define PERIOD_KEY        PERIOD_MASK,PERIOD_PTR
  60.  
  61. #define ESC_MASK        ((unsigned short)0x2000)        /*    escape                */
  62. #define ESC_PTR            (short)3
  63. #define ESC_KEY            ESC_MASK,ESC_PTR
  64.  
  65. #define CMD_PERIOD()    (KeysDown(CMDKEY) && KeysDown(PERIOD_KEY))
  66.  
  67.  
  68. #define SAVECURSOR(c)    (*c = TheCrsr)
  69.  
  70. /* EscapeRecord is a publically undefined record for use with the routines
  71. // BeginEscape(), Escape(), and EndEscape().  Each of the Escape routines
  72. // uses the pointer to this record, EscapePtr.
  73. */
  74. typedef struct EscapeRecord *EscapePtr;
  75.  
  76. #define    stdEscTime        250L                            /* 250 milliseconds        */
  77.  
  78.  
  79. /* For UpdateWindows() and ActivateWindow(), the eventHandler has the following
  80. // interface.  
  81. */
  82. #ifndef THINK_C
  83.     typedef pascal void (* EvtHndlrProcPtr)(EventRecord *theEvent);
  84. #else
  85.     typedef ProcPtr EvtHndlrProcPtr;
  86. #endif
  87.  
  88.  
  89. /* The Routines -------------------------------------------------------------------------
  90. */
  91. #ifdef __safe_link
  92. extern "C" {
  93. #endif
  94.  
  95. extern pascal    void            ClearStruct(            Ptr                structPtr,
  96.                                                         long            sizeofStruct);
  97. extern pascal    Boolean            EqualStruct(            Ptr                structPtr1,
  98.                                                         Ptr                structPtr2,
  99.                                                         long            sizeofStruct);
  100.  
  101. #ifdef THINK_C
  102. extern pascal    Boolean            EqualCursor(            Cursor            *c1,
  103.                                                         Cursor            *c2);
  104. extern pascal    Boolean            EqualBits16(            Bits16            b1,
  105.                                                         Bits16            b2);
  106. #endif
  107.  
  108. extern pascal    void            WaitSnd(                EvtHndlrProcPtr    eventHandler);
  109. extern pascal    void            KillSnd(                                void);
  110. extern pascal    Boolean            PlaySnd(                short            rsrcID);
  111.  
  112. extern pascal    void            UseCursor(                short            cursorID);
  113. extern pascal    void            RestoreCursor(            Cursor            *theCursor);
  114.  
  115. extern pascal     void            PressKeys(                short            theMask,
  116.                                                         short            thePtr);
  117. extern pascal    void            UnpressKeys(            short            theMask,
  118.                                                         short            thePtr);
  119.                                                         
  120. extern pascal    Boolean            KeysDown(                short            theMask,
  121.                                                         short            thePtr);
  122. extern pascal    Boolean            KeyOrMouseAction();
  123.  
  124. extern pascal    EscapePtr        BeginEscape(            long            escapeTime);
  125. extern pascal    Boolean            Escape(                    EscapePtr        escapePtr);
  126. extern pascal    void            EndEscape(                EscapePtr        escapePtr);
  127.  
  128. extern pascal     void            InitManagers(            ProcPtr            resumeProc,
  129.                                                         AutoCursor        *autoCursor,
  130.                                                         short            numMoreMasters);
  131.  
  132. extern pascal    void            HandleDiskEvent(        EventRecord        *theEvent,
  133.                                                         EvtHndlrProcPtr    eventHandler);
  134.  
  135. extern pascal    void            StandardWDrag(            WindowPtr        theWindow,
  136.                                                         Point            anchorPoint);        
  137. extern pascal    Boolean            StandardWZoom(            WindowPtr        theWindow,
  138.                                                         short            zoomType,
  139.                                                         Point            anchorPoint,
  140.                                                         Point            *maxZoomSize);
  141. extern pascal    Boolean            StandardWGrow(            WindowPtr        theWindow,
  142.                                                         short            growBoxSize,
  143.                                                         Point            anchorPoint,
  144.                                                         Point            *deltaSize);
  145.                                                         
  146. extern pascal    Boolean            NextEvent(                short            eventMask,
  147.                                                         EventRecord        *theEvent,
  148.                                                         long            sleepTime,
  149.                                                         RgnHandle        mouseMovedRgn);
  150.                                                         
  151. extern pascal    void            ActivateWindow(            WindowPtr        theWindow,
  152.                                                         Boolean            activate,
  153.                                                         EvtHndlrProcPtr    eventHandler);
  154. extern pascal    void            UpdateWindows(            EvtHndlrProcPtr    eventHandler);
  155.                                                         
  156.  
  157. #ifdef __safe_link
  158. }
  159. #endif
  160. #endif